#include <iostream>
using namespace std;

struct ListNode {
    int val;
    ListNode *next;
    ListNode() : val(0), next(nullptr) {}
    ListNode(int x) : val(x), next(nullptr) {}
    ListNode(int x, ListNode *next) : val(x), next(next) {}
};

class Solution {
public:
    ListNode* mergeKLists(vector<ListNode*>& lists) {
        
    }
    // 二路归并链表
    ListNode* merge(ListNode* list1, ListNode* list2){
        // 如果链表为空的话直接返回另一个链表
        if (list1 == nullptr)
        {
            return list2;
        }
        if (list2 == nullptr)
        {
            return list1;
        }
        // 新建一个链表用来保存合并后的链表
        ListNode* h = new ListNode(-1), *r = h;
        ListNode* p = list1, *q = list2;
        // 只要两个链表不为空，就直接遍历下去
    }
};

int main()
{


    return 0;
}